package com.bupt.config.sys;

import com.alibaba.fastjson.JSONObject;
import com.bupt.dao.TbSystemUserMapper;
import com.bupt.dto.sys.LoginUserDto;
import com.bupt.dto.sys.UserDto;
import com.bupt.model.TbSystemUser;
import com.bupt.model.TbSystemUserExample;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 查询当前的用户的登陆的状态
 * 与对接作准备
 */
@Component
public class LoginUserStatusConfig {

    /*  用户的基本操作  */
    private final TbSystemUserMapper tbSystemUserMapper;

    public LoginUserStatusConfig(TbSystemUserMapper tbSystemUserMapper) {
        this.tbSystemUserMapper = tbSystemUserMapper;
    }

    public UserDto getUserDto(String tokenKey) {
        // 访问了数据库
        TbSystemUserExample tbSystemUserExample = new TbSystemUserExample();
        tbSystemUserExample.createCriteria().andLastLoginTokenEqualTo(tokenKey);
        List<TbSystemUser> tbSystemUsers = tbSystemUserMapper.selectByExample(tbSystemUserExample);

        if (null != tbSystemUsers && tbSystemUsers.size() > 0) {
            TbSystemUser tbSystemUser = tbSystemUsers.get(0);
            // 用户名密码都是正确的 那么我们就要存储我们的登陆用户的基本信息到redis的缓存中
            TbSystemUser user = tbSystemUserMapper.selectByPrimaryKey(tbSystemUser.getuId());
            if (user == null) {
            }
            UserDto userDto1 = JSONObject.parseObject(JSONObject.toJSONString(tbSystemUser), UserDto.class);
            return userDto1;
        }
        return null;
    }
}
